Metric definition and visualization

ABSTRACT

Examples provide a metric definition component for creating and defining key performance indicators. A metric definition component connects to a set of data sources using database credentials to onboard the data tables. An extraction component automatically extracts data structures associated with the set of data sources. An analysis component analyzes the extracted set of data structures and a set of predefined performance metrics using a set of algorithms. The set of algorithms can include an entity classification algorithm, an entity search algorithm and/or an entity relational mapping algorithm. The metric definition component defines a set of KPIs based on the analysis of the extracted data. A visualization component generates a set of visualizations representing the set of KPIs.

BACKGROUND

To create new performance metrics for quantifying performance of variousaspects of a business or enterprise, an analyst typically relies upon adevelopment team to develop new key performance indicators (KPIs). Theuser typically identifies and documents the KPIs identified. Thedevelopment team performs data sourcing, starts data tablesidentification and imports data. The user and development teamsynchronize to identify any gaps or changes during development process.When KPIs are crated, the user documents visualization requirements toenable the development team to start working on visualization of theKPIs. The development team develops and publishes graphicalrepresentations of the developed KPIs. This is a labor intensive,inefficient and time-consuming process for the user and the developmentteam.

SUMMARY

Some examples provide a system for defining and visualizing keyperformance metrics. The system includes at least one processorcommunicatively coupled to a memory. A data storage device includes aset of data sources. A user interface is provided for receiving databasecredentials associated with connecting to the set of data sources. Anonboarding component connects to the set of data sources using theconnection data. An extraction component extracts data and correspondingdata structure of data assets associated with the set of data sourcesand a set of predefined performance metrics. A metric definitioncomponent automatically defines at least one key performance indicator(KPI) based on analysis of the extracted data and a set of user-providedattribute operators for KPI creation. An export component exports atleast one KPI to a destination data source. A visualization componentcreates a set of visualizations representing data associated with atleast one KPI. An output device outputs at least one visualization inthe set of visualizations to at least one user, wherein the at least onevisual representation provides a graphical representation of aquantifiable measurement gauging performance based on the at least oneKPI.

Other examples provide a computer-implemented method for defining andvisualizing key performance metrics. An extraction component extractsdata structures associated with a set of data sources. An analysiscomponent analyzes extracted data structures and a set of predefinedperformance metrics. A metric definition component defines a set of KPIsbased on the analysis of the extracted data. A visualization componentgenerates at last one visualization representing data associated withthe at least one KPI in the set of KPIs for display to a user via anoutput device.

Still other examples provide a computer storage device havingcomputer-executable instructions for defining and visualizing keyperformance metrics by a metric definition component. The metricdefinition component uploads a dynamic set of data sources. The dynamicset of data sources are uploaded to a database for analysis duringcreation of the set of KPIs. A set of data structures associated withthe uploaded set of data sources are extracted. The metric definitioncomponent analyzes the extracted set of data structures and a set ofpredefined performance metrics are analyzed. The metric definitioncomponent defines a set of KPIs based on the analysis of the extracteddata. The metric definition component exports the set of KPIs and dataassociated with the set of KPIs to at least one destination databaseassociated with at least one data storage device.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram illustrating a system for metricdefinition and visualization.

FIG. 2 is an exemplary block diagram illustrating a metric definitioncomponent for generating KPIs and visualizations of KPIs.

FIG. 3 is an exemplary block diagram illustrating a metric definitioncomponent for KPI creation.

FIG. 4 is an exemplary block diagram illustrating an output devicegenerating a graphical user interface (GUI) display.

FIG. 5 is an exemplary block diagram illustrating a database for storingdata associated with definition and visualization of KPIs.

FIG. 6 is an exemplary block diagram illustrating a process for definingand visualization KPIs.

FIG. 7 is an exemplary flow chart illustrating operation of thecomputing device to create and publish a KPI.

FIG. 8 is an exemplary flow chart illustrating operation of thecomputing device to create a visualization of a KPI.

FIG. 9 is an exemplary flow chart illustrating operation of thecomputing device to define a set of KPIs and a set of KPIvisualizations.

FIG. 10 is an exemplary flow chart illustrating operation of thecomputing device to perform entity classification.

FIG. 11 is an exemplary flow chart illustrating operation of thecomputing device to perform entity search.

FIG. 12 is an exemplary flow chart illustrating operation of thecomputing device to perform relationship mapping.

FIG. 13 is an exemplary screenshot illustrating a UI enablinguser-selection of tables from a database for onboarding.

FIG. 14 is an exemplary screenshot illustrating a UI enablinguser-selection of existing data source for onboarding.

FIG. 15 is an exemplary screenshot illustrating a UI for setting up adata source for onboarding.

FIG. 16 is an exemplary screenshot illustrating a UI for importing adata table during onboarding.

FIG. 17 is an exemplary screenshot illustrating a UI for onboarding datatables.

FIG. 18 is an exemplary screenshot illustrating a UI for verifyingimported columns during onboarding.

FIG. 19 is an exemplary screenshot illustrating a UI for creating aperformance metric.

FIG. 20 is an exemplary screenshot illustrating a UI for exporting a KPIto a destination data source.

FIG. 21 is an exemplary screenshot illustrating a UI for visualizationof a KPI.

FIG. 22 is an exemplary screenshot illustrating a KPI visualization.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

A more detailed understanding can be obtained from the followingdescription, presented by way of example, in conjunction with theaccompanying drawings. The entities, connections, arrangements, and thelike that are depicted in, and in connection with the various figures,are presented by way of example and not by way of limitation. As such,any and all statements or other indications as to what a particularfigure depicts, what a particular element or entity in a particularfigure is or has, and any and all similar statements, that can inisolation and out of context be read as absolute and therefore limiting,can only properly be read as being constructively preceded by a clausesuch as “In at least some examples, . . . ” For brevity and clarity ofpresentation, this implied leading clause is not repeated ad nauseum.

Referring to the figures, examples of the disclosure enable a metricdefinition tool that defines and discovers key performance indicators(KPIs) for users that do not have extensive knowledge or experience withstructured query language (SQL) or database queries. In some examples,the system provides user-friendly intuitive screens for creating newKPIs. The user interface reduces user-time required to develop new KPIsand improves user efficiency via the user interface.

In other examples, the system provides a user-friendly tool whichenables users to create and experiment with new KPIs themselves despitelimited technical knowledge. The user can collaborate with others bysharing/exporting the new KPIs to other users/databases and/orapplications via export and output of KPIs enabled by other examples ofthe metric definition tool.

Referring again to FIG. 1, an exemplary block diagram illustrates asystem 100 for metric definition and visualization. In the example ofFIG. 1, the computing device 102 represents any device executingcomputer-executable instructions 104 (e.g., as application programs,operating system functionality, or both) to implement the operations andfunctionality associated with the computing device 102. The computingdevice 102 in some examples includes a mobile computing device or anyother portable device. A mobile computing device includes, for examplebut without limitation, a mobile telephone, laptop, tablet, computingpad, netbook, gaming device, and/or portable media player. The computingdevice 102 can also include less-portable devices such as servers,desktop personal computers, kiosks, or tabletop devices. Additionally,the computing device 102 can represent a group of processing units orother computing devices.

In some examples, the computing device 102 has at least one processor106 and a memory 108. The computing device 102 in other examplesincludes a user interface device 110.

The processor 106 includes any quantity of processing units and isprogrammed to execute the computer-executable instructions 104. Thecomputer-executable instructions 104 is performed by the processor 106,performed by multiple processors within the computing device 102 orperformed by a processor external to the computing device 102. In someexamples, the processor 106 is programmed to execute instructions suchas those illustrated in the figures (e.g., FIG. 6, FIG. 7, FIG. 8, FIG.9, FIG. 10, FIG. 11 and FIG. 12).

The computing device 102 further has one or more computer-readablemedia, such as the memory 108. The memory 108 includes any quantity ofmedia associated with or accessible by the computing device 102. Thememory 108 in these examples is internal to the computing device 102 (asshown in FIG. 1). In other examples, the memory 108 is external to thecomputing device (not shown) or both (not shown). The memory 108 caninclude read-only memory and/or memory wired into an analog computingdevice.

The memory 108 stores data, such as one or more applications. Theapplications, when executed by the processor 106, operate to performfunctionality on the computing device 102. The applications cancommunicate with counterpart applications or services such as webservices accessible via a network 112. In an example, the applicationsrepresent downloaded client-side applications that correspond toserver-side services executing in a cloud.

In other examples, the user interface device 110 includes a graphicscard for displaying data to the user and receiving data from the user.The user interface device 110 can also include computer-executableinstructions (e.g., a driver) for operating the graphics card. Further,the user interface device 110 can include a display (e.g., a touchscreen display or natural user interface) and/or computer-executableinstructions (e.g., a driver) for operating the display. The userinterface device 110 can also include one or more of the following toprovide data to the user or receive data from the user: speakers, asound card, a camera, a microphone, a vibration motor, one or moreaccelerometers, a BLUETOOTH® brand communication module, globalpositioning system (GPS) hardware, and a photoreceptive light sensor. Ina non-limiting example, the user inputs commands or manipulates data bymoving the computing device 102 in one or more ways.

In some examples, the user interface device 110 generates a graphicaluser interface (GUI) 114. The GUI 114 provides a user-friendly interfacebetween the user and the metric definition tool.

The network 112 is implemented by one or more physical networkcomponents, such as, but without limitation, routers, switches, networkinterface cards (NICs), and other network devices. The network 112 isany type of network for enabling communications with remote computingdevices, such as, but not limited to, a local area network (LAN), asubnet, a wide area network (WAN), a wireless (Wi-Fi) network, or anyother type of network. In this example, the network 112 is a WAN, suchas the Internet. However, in other examples, the network 112 is a localor private LAN.

In some examples, the system 100 optionally includes a communicationsinterface device 116. The communications interface device 116 includes anetwork interface card and/or computer-executable instructions (e.g., adriver) for operating the network interface card. Communication betweenthe computing device 102 and other devices, such as but not limited to acloud storage 118, can occur using any protocol or mechanism over anywired or wireless connection. In some examples, the communicationsinterface device 116 is operable with short range communicationtechnologies such as by using near-field communication (NFC) tags.

The cloud storage 118 is a logical data store providing data storageservices to the computing device 102 or other clients. The cloud storage118 is hosted and/or delivered via the network 112. In some non-limitingexamples, the cloud storage 118 is associated with one or more physicaldata storage devices in one or more data centers. In other examples, thecloud storage 118 is associated with a distributed network of datastorage devices.

In this non-limiting example, the cloud storage 118 includes a set ofdata sources 120. The set of data sources 120 includes one or more datastores, such as, but not limited to, a database. The set of data sources120 can include a source of data for extraction and/or analysis. The setof data sources 120 can also include a destination data source 122. Adestination data source 122 is a destination for exporting/storing newor pre-existing KPIs.

The system 100 can optionally include a local data storage device 124for storing data, such as, but not limited to database credentials 126,extracted data 128 and/or attribute operators 130. Database credentials126 includes data providing credentials enabling the computing device102 to connect to one or more data sources in the set of data sources120. The extracted data 128 is data extracted/obtained from the set ofdata sources 120. The attribute operators 130 includes one or moreattributes as operators.

The data storage device 124 can include one or more different types ofdata storage devices, such as, for example, one or more rotating disksdrives, one or more solid state drives (SSDs), and/or any other type ofdata storage device. The data storage device 124 in some non-limitingexamples includes a redundant array of independent disks (RAID) array.In other examples, the data storage device 124 includes a database, suchas, but not limited to, the database 500 in FIG. 5 below.

The data storage device 124 in this example is included within thecomputing device 102, attached to the computing device, plugged into thecomputing device or otherwise associated with the computing device 102.In other examples, the data storage device 124 includes a remote datastorage accessed by the computing device via the network 112, such as aremote data storage device, a data storage in a remote data center, or acloud storage.

The memory 108 in some examples stores one or more computer-executablecomponents. Exemplary components include a metric definition component132. The metric definition component can also be referred to as a metricdefinition tool.

The metric definition component 132 in some examples connects to thecloud storage 118 or other data source using the database credentials126. Once the connection is established, the metric definition component132 extracts data, such as, but not limited to, a set of data structuresassociated with the set of data sources 120. The metric definitioncomponent 132 analyzes the extracted data 128 using a set of algorithms133 to define a set of KPIs 134.

The set of algorithms 133 can include, without limitation, an entityclassification algorithm, an entity search algorithm and/or an entityrelational mapping algorithm. The metric definition component 132generates a set of one or more visualizations 136 of one or more of theKPIs. A visualization is a graphical representation 138 of a KPI.

The metric definition component 132 can export the KPIs and/orvisualizations 136 to another application and/or database. In otherexamples, the metric definition component 132 displays the one or moreKPIs and/or the visualizations 136 via the user interface device 110. Instill other examples, the metric definition component 132 outputs theset of KPIs 134 and/or the visualizations 136 via an output device 140.The output device 140 can be implemented as a display device, a printer,a speaker system, a projector, an augmented reality device, a userdevice, or any other type of output device.

The metric definition component provides an application and UI whichhelps a user explore, define and discover KPIs without technicalknowledge of visualization, SQL and database. The metric definitioncomponent permits the user to define metrics within the applicationwithout the need for developer intervention. In some examples, the useridentifies the KPIs required without documentation for the KPIs. Themetric definition component applies an interface for creating the KPI.The metric definition component develops the SQL query for the formulaentered and auto identifies the rollup columns required for the query.

In other examples, the metric definition component provides end-to-endsolution for development and publishing of KPIs. The metric definitioncomponent allows a user or business to visualize KPIs in any form, suchas graphs, charts, tables, grids or any other form. A chart can includea bar chart, line chart, pie chart, etc. the metric definition componentfurther reduces the time required to create and visualize PKIs. In someexamples, the metric definition component provides an eighty percentimprovement in creation and visualization time.

FIG. 2 is an exemplary block diagram illustrating a metric definitioncomponent 132 for generating KPIs and visualizations of KPIs. In someexamples, the metric definition component 132 includes an onboardingcomponent 202. The onboarding component 202 connects 204 to a set ofdata sources using connection data 206. The connection data 206 can bereceived from a user via a user interface device or received via anetwork. The connection data 206 in some examples includes the databasecredentials 126 used to initiate a connection with one or more datasources.

An extraction component 208 in other examples extracts data 210 andcorresponding data structure 212 of data assets 214 associated with theset of data sources. The extraction component 208 can also optionallyextract/retrieve a set of predefined business performance metrics 216,such as, but not limited to, previously created KPIs. The extracted data218 includes the data structure(s) 212 and/or the predefined performancemetrics.

In some examples, a KPI creation component 220 automatically defines 222at least one key performance indicator (KPI) 224 based on analysis ofthe extracted data 218 and a set of user-provided attribute operators226 to create one or more KPIs corresponding to attributes or key wordsprovided by the user.

An export component 228 exports at least one newly created KPI to adestination data source, such as, but not limited to, the destinationdata source 122. The destination data source 122 can include a database,a cloud storage, an application, or other destination.

A visualization component 232 in other examples creates a set ofvisualizations 234 representing data associated with at least one newlycreated KPI. A visualization in the set of visualizations 234 includes agraphical representation 138 of a KPI.

FIG. 3 is an exemplary block diagram illustrating a metric definitioncomponent 132 for KPI creation. In some examples, an analysis component302 performs semantic analysis 304 on table metadata associated with aset of data tables available via the connected set of data sources, suchas the data table 308. The extracted table metadata identifies at leastone of table name 310, index keys 312 and/or columns 314.

In some non-limiting examples, the metric definition component enablesthe user to add columns and mathematical functions and arithmeticoperations for KPI creation. The functions can include aggregations,such as, average (AVG), count, maximum (MAX), minimum (MIN), etc.

In other examples, the analysis component 302 automatically identifiesfacts 316 and/or dimensions 318 within at least one data structureextracted from at least one data source in the set of data sources. Theextracted data structure 320 is a data structure extracted from at leastone data source during the onboarding process.

An upload component 322 in other examples uploads 324 a data structure326 during onboarding. The data structures uploaded by the uploadcomponent can include the extracted data structure 320 utilized by theanalysis component 302.

The metric definition component uses a set of algorithms 133 to createKPIs and/or KPI visualizations. The set of algorithms 133 can include,without limitation, an entity classification algorithm 301, an entitysearch algorithm 303 and/or an entity relational mapping algorithm 305.

In some examples, a KPI creation component 220 automatically identifiesone or more rollup columns 328 associated with at least one data table308 required for at least one structured query language (SQL) 330 query332 associated with identifying at least one KPI. The KPI creationcomponent 220 in other examples utilizes data obtained from a dynamicset of data sources, such as, but not limited to, a list of tables 334,dimensions 318 and/or fact tables 336. The dynamic set of data sourcesare uploaded to a database for analysis during creation of the set ofKPIs by the upload component 322.

In some non-limiting examples, the metric definition component 132onboards related entities 338. In these examples, the metric definitioncomponent classifies entities as facts 316 or dimensions 318. The metricdefinition component 132 updates 342 classification 340 with updatesfrom a user on condition user-provided updates are provided. The metricdefinition component persists information from the updatedclassification into a set of relationship graphs 344.

In other examples, the metric definition component searches for relatedentities and attributes using a set of user-provided key words. Themetric definition component identifies entities related to the set ofuser-provided key words from a relationship graph. The metric definitioncomponent adds the entities and attributes to a result set.

In still other examples, the metric definition component identifies aset of entities 346 associated with a set of user-provided attributes348. The metric definition component obtains a set of entity pairs 350from an entities list. The metric definition component creates a joinclause 352 using a set of primary keys (PKs) for each pair from theentities list. The metric definition component creates a query usinginput provided by at least one user along with the created join clause352.

In other examples, the system identifies the primary key (PK) of thetables and compares it with the available dimensions. This assists withidentifying possible upgrades. The system checks if the PK of one tableis a proper subset of another table. If PK of one table is not propersubset of another table then try upgrading the composite PK and thencheck. Based on PK subset, the system identifies the type of relationbetween the tables.

FIG. 4 is an exemplary block diagram illustrating an output device 140generating a GUI 114 display 402. The output device 140 can output adisplay of a visualization 404 in the set of visualizations to at leastone user. The visualization 404 provides a graphical representation 138of a quantifiable measurement 406 to gauge 408 performance 410 of anaspect of a business based on the at least one KPI (performance metric).

The GUI 114 in some examples provides a drag-and-drop option enabling auser to drag-and-drop entities and attributes required for visualizingthe formula for a selected KPI. The GUI 114 in other examples providesan interface to visualize multiple formulas for creating a selected KPI.

A portal page 412 provided via an Internet connection in other examplesprovides a set of GUI options for self-service creation of KPIs via themetric definition component. The portal page 412 is accessed via a webbrowser in some non-limiting examples. A user interacting with the GUI114 provides input 414 for connecting with a data source, initiatingcreation of new KPIs and/or initiating creation of a visualization ofone or more KPIs.

FIG. 5 is an exemplary block diagram illustrating a database 500 forstoring data associated with definition and visualization of KPIs. Thedatabase 500 can store a set of tables 502, including a table 504 and/ortable metadata 506 extracted from one or more data sources, such as adata source 508. The set of tables within a database can be associatedwith one or more data sources in the set of data sources. The onboardingcomponent imports the set of tables via the database credentials.

The database 500 in other examples include entity classification 510,including classification as fact 512 or dimension 514. The entityclassifications are generated automatically by the metric definitioncomponent. However, a user can confirm 516 classifications or provide anupdate 518 of classifications.

A result set 520 includes entities 522 and attributes 524 identified bysearching for related entities and attributes using a set ofuser-provided key words to identify entities related to the set ofuser-provided key words from a relationship graph 526.

The metric definition component in some examples obtains a set of entitypairs 528 from an entities list 530. The set of entity pairs 528includes at least one entity pair 532. A join clause can be createdusing a set of primary keys 534 for each pair from the entity list 530.

FIG. 6 is an exemplary block diagram illustrating a process 600 fordefining and visualization KPIs. The process shown in FIG. 7 isperformed by a metric definition component, executing on a computingdevice, such as the computing device 102.

The process begins by connecting to a data source and extracting datastructure(s) at 602. The metric definition component uploads the datastructure of data assets at 604. The metric definition componentautomatically identifies facts and dimensions in the data structure at606. The user can provide additional classification of attributes intofacts and dimension if required at 608. The user can utilize a drag anddrop option associated with the GUI to drag and drop attribute operatorsrequired for KPI creation at 610. The metric definition component allowsvalid combination, auto identifies possible rollup and suggests possiblesearch filters at 612. The metric definition component formulates a newKPI and provides its metadata at 614. Validation of the KPI with asubset of data is performed at 616.

The user chooses a KPI to be exported to a destination data source at618. The user utilizes the user interface to choose a KPI available toconsume via an application programming interface (API) and forvisualization at 620. The process terminates thereafter.

FIG. 7 is an exemplary flow chart illustrating operation of thecomputing device to create and publish a KPI. The process shown in FIG.7 is performed by a metric definition component, executing on acomputing device, such as the computing device 102.

The process begins by determining whether a new KPI is required at 702.If yes, the metric definition component creates a KPI at 704. The metricdefinition component determines if the KPI should be modified at 706. Ifyes, the metric definition component modifies the KPI at 708. The metricdefinition component publishes the KPI at 710. The process terminatesthereafter.

While the operations illustrated in FIG. 7 are performed by a computingdevice, aspects of the disclosure contemplate performance of theoperations by other entities. In a non-limiting example, a cloud serviceperforms one or more of the operations.

FIG. 8 is an exemplary flow chart illustrating operation of thecomputing device to create a visualization of a KPI. The process shownin FIG. 8 is performed by a metric definition component, executing on acomputing device, such as the computing device 102.

The process begins by determining whether a KPI is created at 802. Ifyes, the metric definition component creates a visualization of a KPI at804. The metric definition component determines whether to modify thevisualization at 806. If yes, the metric definition component modifiesvisual components of the visualization at 808. The metric definitioncomponent publishes the visualization at 810. The process terminatesthereafter.

While the operations illustrated in FIG. 8 are performed by a computingdevice, aspects of the disclosure contemplate performance of theoperations by other entities. In a non-limiting example, a cloud serviceperforms one or more of the operations.

FIG. 9 is an exemplary flow chart illustrating operation of thecomputing device to define a set of KPIs and a set of KPIvisualizations. The process shown in FIG. 9 is performed by a metricdefinition component, executing on a computing device, such as thecomputing device 102.

The process begins by extracting data and corresponding data structuresat 902. The metric definition component analyzes the extracted data at904. The metric definition component determines if there are anypredefined KPIs at 906. If yes, the metric definition component analyzesthe predefined performance metrics at 908. The metric definitioncomponent defines a set of KPIs at 910. The metric definition componentdetermines whether to create a visualization at 912. If yes, the metricdefinition component generates a set of visualizations at 914. Themetric definition component outputs visualization(s) of the KPI(s) at916. The process terminates thereafter.

While the operations illustrated in FIG. 9 are performed by a computingdevice, aspects of the disclosure contemplate performance of theoperations by other entities. In a non-limiting example, a cloud serviceperforms one or more of the operations.

The metric definition component onboards related entities for the userin some examples. The metric definition component analyzes entities andclassify the entities into fact or dimension entity. The relationshipbetween the existing entities onboarded and new entities are calculatedand updated to the relationship graph. The metric definition toolsuggests the classification to the user. The user can edit and makechanges to the classification if requested. After confirming with theuser, the relationship is persisted.

FIG. 10 is an exemplary flow chart illustrating operation of thecomputing device to perform entity classification. The process shown inFIG. 10 is performed by a metric definition component, executing on acomputing device, such as the computing device 102.

The process begins by onboarding related entities at 1002. The metricdefinition component auto-classifies and suggests the entities as factor dimension at 1004. The metric definition component confirms theclassification at 1006. Confirmation can be based on user-providedinput. The metric definition component determines whether to update theclassification at 1006. If yes, the metric definition component getsupdated classification from the user at 1008. The metric definitioncomponent persists the information from the classification into arelationship graph at 1010. The process terminates thereafter.

While the operations illustrated in FIG. 10 are performed by a computingdevice, aspects of the disclosure contemplate performance of theoperations by other entities. In a non-limiting example, a cloud serviceperforms one or more of the operations.

In some examples, the metric definition component provides an interfacethat enables the user to search for entities and attributes in thecreate KPI step. The entity search algorithm is used to search theentities and attributes. The search provides results used to create theKPI. When the user enters a keyword, the metric definition componentcreates a list of results using a keyword search. Attributes andentities whose name match with the comma separated values (CSV) providedby user are added to the result set. Some entities may not be related tothe search keyword alphabetically, but they are related from therelationship graph. The relationship graph is created at the onboardingstep.

In some examples, a general SQL query generation requires deviationexpressions and filter expressions in the same form as its SQLequivalent. The entity relational mapping algorithm creates the joinclause using inputs from the user. When using the metric definitioncomponent to define a KPI, the user inputs attributes required from KPIand filter conditions to be applied. The attributes input used to createjoin clause. Filter conditions and the join clause are used by themetric definition component for query creation.

In other examples, the metric definition component groups all entitiesinto pairs after identifying entities for a query. If entities are A, Band C, the entities pair can be AB, AC, BA, BC, CA and CB. Pairs aresymmetric in nature. The metric definition component removes duplicatesto identify unique entity pairs from entities list. In this example, theunique entities list includes AB, AC and BC. In still other examples,the metric definition component uses subset of primary keys to definethe join clause for each entity pair.

FIG. 11 is an exemplary flow chart illustrating operation of thecomputing device to perform entity search. The process shown in FIG. 11is performed by a metric definition component, executing on a computingdevice, such as the computing device 102.

The process begins by getting a search keyword from a user at 1102. Themetric definition component searches for related entities and attributesusing the keyword search at 1104. The metric definition componentidentify entities related to search keyword from the relationship graphsat 1106. The metric definition component adds the entities andattributes to the result set at 1108. The process terminates thereafter.

While the operations illustrated in FIG. 11 are performed by a computingdevice, aspects of the disclosure contemplate performance of theoperations by other entities. In a non-limiting example, a cloud serviceperforms one or more of the operations.

The process gets attributes from a user at 1202. The metric definitioncomponent gets all entities for the attributes at 1204. The metricdefinition component gets unique entity pairs from the entities list at1206. The metric definition component creates a join clause using PKs ofentity for each pair from the list at 1208. The metric definitioncomponent creates query using the input provided by users and the joinclause at 1210. The process terminates thereafter.

FIG. 12 is an exemplary flow chart illustrating operation of thecomputing device to perform relationship mapping. The process shown inFIG. 12 is performed by a metric definition component, executing on acomputing device, such as the computing device 102.

While the operations illustrated in FIG. 12 are performed by a computingdevice, aspects of the disclosure contemplate performance of theoperations by other entities. In a non-limiting example, a cloud serviceperforms one or more of the operations.

FIG. 13 is an exemplary screenshot 1300 illustrating a UI enablinguser-selection of tables from a database for onboarding. A user selectsan option to choose tables from a database for onboarding or importing atable using a data definition language (DDL).

FIG. 14 is an exemplary screenshot 1400 illustrating a UI enablinguser-selection of existing data source for onboarding. A user can selectan existing data source or a custom data source in this non-limitingexample.

FIG. 15 is an exemplary screenshot 1500 illustrating a UI for setting upa data source for onboarding. The data source can be setup with a name,description, uniform resource locator (URL) locator or otherinformation.

FIG. 16 is an exemplary screenshot 1600 illustrating a UI for importinga data table during onboarding. A user utilizes the UI to import datatables using a DDL database credentials in this non-limiting example.

FIG. 17 is an exemplary screenshot 1700 illustrating a UI for onboardingdata tables. The user can utilize the UI to select a table from a set ofdata tables for onboarding/uploading for analysis during KPI creationand/or creation of visualizations.

FIG. 18 is an exemplary screenshot 1800 illustrating a UI for verifyingimported columns during onboarding. The UI enables the user to verifythe columns for import.

FIG. 19 is an exemplary screenshot 1900 illustrating a UI for creating aperformance metric. The UI includes performance metrics such as, but notlimited to, percentage quantity growth, percentage sales growth or anyother type of performance metric.

FIG. 20 is an exemplary screenshot 2000 illustrating a UI for exportinga KPI to a destination data source. The UI enables the user to exportthe created KPI to a user-selected destination data source.

FIG. 21 is an exemplary screenshot 2100 illustrating a UI forvisualization of a KPI. The UI enables the user to select KPIs forvisualization in this non-limiting example.

FIG. 22 is an exemplary screenshot 2200 illustrating a KPIvisualization. The screenshot in this example includes a bar graphrepresenting a sales-performance KPI.

Additional Examples

In some examples, the metric definition tool provides a web-basedsolution that automatically searches existing KPIs and performs semanticanalysis of table metadata to identify business performance metrics ofinterest to a user. The system generates a visualization of the KPIs,such as, but not limited to, graphs, tables, charts and other metricvisualizations. In some examples, the metric definition tool outputs arecommendation to generate possible rollup columns for business KPIsfrom multiple tables and data sources.

The system provides a user interface that is both intuitive and userfriendly, such as by providing a drag and drop user interface KPIbuilder to build and perform ad-hoc KPI to facilitate businessanalytics. The system performs mathematical operations and aggregationsas part of building and executive KPI. The metric definition componentbuilds upon pre-existing KPIs and join them in meaningful ways to createnew business KPIs.

The metric definition system in other examples is domain agnostic andcan be used for various domains based on data model. Non-technical userscan use the system to create business level KPIs.

In an illustrative example, the system performs data onboarding processwhere applications are onboarded. The onboarding component permitsuser/business or nontechnical to connect the system to one or moresources of data, such as connecting to a database, to obtainmetric-related data (information). The system defines KPIs and providesvisualization of defined performance metrics without developer teamintervention. The user (business) does not have to interact withdevelopment team for KPI creation or visualization. Once KPI is created,the business does not have to go to development team for visualization.

This reduces KPI development time from 10 days to 2 days when data isreadily available. The metric definition component can reduce KPIdevelopment time from 20 days to only 7 days without technical knowledgein other examples.

In other examples, the user chooses data sources where data ispulled/extracted. Onboarding data sources is one-time. If tables arealready present, the onboarding step is unnecessary.

In an exemplary scenario, a user provides database credentials to permitthe metric definition application to connect to a database (datasource). The metric definition component searches for tables andonboards the data tables. The metric definition component classifies thetables as fact or dimension. The metric definition component identifiesthe dimensions columns, fact columns and tags. The metric definitioncomponent establishes the related metrics. The metric definitioncomponent derives/creates a hierarch for the dimensions.

In another example, the metric definition component performs metricssearch/discover. The user searches the A0/A1/A2 . . . attributes basedon tags or free text to create derived attributes (built on). The userchooses the attributes. The system chooses group-by/dicing attributes(dimensions classify for rollup and group-by). The system choose thefilter/slicing(where clause) and create the expression. The system addsability to create similar expressions with varying filters but samegroup by attributes. The system adds metadata for new expression andpersist the derived attribute. The system performs execution of derivedattributes. The user can choose the derived attribute and export/computethe sample data. The system exports the sample data into excel andpersist the sample data into a database. The system creates avisualization of the sample data using portal. The system imports datafrom data console and adds the ability to go to data console UI.

Alternatively, or in addition to the other examples described herein,examples include any combination of the following:

-   -   a set of tables within a database associated with at least one        data source in the set of data sources, wherein the onboarding        component imports the set of tables via the database        credentials;    -   an analysis component, implemented on the at least one        processor, performs semantic analysis on table metadata        associated with a set of data tables available via the connected        set of data sources, wherein the extracted table metadata        identifies at least one of table name, index keys or columns;    -   an analysis component, implemented on at least one processor,        automatically identifies facts and dimensions within at least        one data structure extracted from at least one data source in        the set of data sources;    -   an upload component, implemented on at least one processor,        uploads data during visualization if a selected data structure        is uploaded without a connection to a data source associated        with the selected data structure;    -   an upload component, implemented on at least one processor,        uploads data structure during onboarding;    -   a graphical user interface implemented on the at least one        processor that provides a drag-and-drop option enabling a user        to drag-and-drop visual component required for visualizing a        selected KPI;    -   a graphical user interface implemented on the at least one        processor that provides a drag-and-drop option enabling a user        to drag-and-drop entities and attributes required for        visualizing the formula for a selected KPI;    -   a graphical user interface implemented on the at least one        processor that provides an interface to visualize multiple        formulas for creating a selected KPI;    -   the metric definition component automatically identifies rollup        columns associated with at least one data table required for at        least one structured query language (SQL) query associated with        identifying at least one KPI;    -   a dynamic set of data sources including at least one list of        tables, dimensions or fact tables, wherein the dynamic set of        data sources are uploaded to a data storage device for analysis        during creation of the set of KPIs;    -   a portal page, implemented on the user interface device, wherein        the portal page provides a set of GUI options for self-service        creation of KPIs via the metric definition component;    -   connecting, by an onboarding component, to the set of data        sources using the connection data provided by a user via a user        interface device, the set of data sources comprising a cloud        storage, wherein a connection with the cloud storage is        accomplished via a network;    -   importing, by an onboarding component, a set of tables within a        database associated with at least one data source in the set of        data sources, wherein the onboarding;    -   uploading, by an upload component, performance data associated        with at least one KPI for utilization during visualization on        condition a selected data structure is uploaded without a        connection to a data source associated with the selected data        structure;    -   performing semantic analysis on table metadata associated with a        set of data tables available via the connected set of data        sources, wherein the extracted table metadata identifies at        least one of table structure, table name, index keys or columns;    -   automatically identifying at least one rollup column associated        with at least one data table required for at least one        structured query language (SQL) query associated with        identifying at least one KPI;    -   uploading a dynamic set of data sources including at least one        list of tables, dimensions or fact tables, wherein the dynamic        set of data sources are uploaded to a data storage device        (database) for analysis during creation of the set of KPIs;    -   creating a set of visualizations representing data associated        with the at least one KPI, wherein the set of visualizations        provide a graphical representation of a quantifiable measurement        gauging performance based on the at least one KPI in the set of        KPIs;    -   connecting to at least one data source via a network using        connection data provided by a user via a user interface device,        the set of data sources comprising a cloud storage, wherein a        connection with the cloud storage is accomplished via a network;    -   providing a KPI creation and visualization portal page via a GUI        associated with an output device, wherein the portal page        provides a set of GUI options for self-service creation of KPIs        via the metric definition component and self-service        visualization of KPIs;    -   wherein entity classification further comprises onboarding        related entities; classifying entities as fact or dimension;        updating classification with updates from a user on condition        user-provided updates are provided; persisting information from        the updated classification into a set of relationship graphs;    -   wherein entity search further comprises searching for related        entities and attributes using a set of user-provided key words;        identifying entities related to the set of user-provided key        words from a relationship graph; adding the entities and        attributes to a result set;    -   wherein entity relationship mapping further comprises        identifying a set of entities associated with a set of        user-provided attributes; obtaining a set of entity pairs from        an entities list; creating a join clause using a set of primary        keys for each pair from the entities list; and creating a query        using input provided by at least one user and the created join        clause; and    -   executing a set of algorithms to generate a KPI by the metric        definition component, wherein the set of algorithms further        comprises an entity classification algorithm, an entity search        algorithm and an entity relational mapping algorithms.

At least a portion of the functionality of the various elements in FIG.1, FIG. 2, FIG. 3, FIG. 4 and FIG. 5 can be performed by other elementsin FIG. 1, FIG. 2, FIG. 3, FIG. 4 and FIG. 5, or an entity (e.g.,processor 106, web service, server, application program, computingdevice, etc.) not shown in FIG. 1, FIG. 2, FIG. 3, FIG. 4 and FIG. 5.

In some examples, the operations illustrated in FIG. 6, FIG. 7, FIG. 8,FIG. 9, FIG. 10, FIG. 11 and FIG. 12 can be implemented as softwareinstructions encoded on a computer-readable medium, in hardwareprogrammed or designed to perform the operations, or both. For example,aspects of the disclosure can be implemented as a system on a chip orother circuitry including a plurality of interconnected, electricallyconductive elements.

In other examples, a computer readable medium having instructionsrecorded thereon which when executed by a computer device cause thecomputer device to cooperate in performing a method of KPI creation andvisualization, the method comprising extracting a set of data structuresassociated with a set of data sources; analyzing the extracted set ofdata structures and a set of predefined performance metrics; defining aset of KPIs based on the analysis of the extracted data; and generatingat last one visualization representing data associated with the at leastone KPI in the set of KPIs for display to a user via an output device.

While the aspects of the disclosure have been described in terms ofvarious examples with their associated operations, a person skilled inthe art would appreciate that a combination of operations from anynumber of different examples is also within scope of the aspects of thedisclosure.

The term “Wi-Fi” as used herein refers, in some examples, to a wirelesslocal area network using high frequency radio signals for thetransmission of data. The term “BLUETOOTH®” as used herein refers, insome examples, to a wireless technology standard for exchanging dataover short distances using short wavelength radio transmission. The term“NFC” as used herein refers, in some examples, to a short-range highfrequency wireless communication technology for the exchange of dataover short distances.

Exemplary Operating Environment

Exemplary computer-readable media include flash memory drives, digitalversatile discs (DVDs), compact discs (CDs), floppy disks, and tapecassettes. By way of example and not limitation, computer-readable mediacomprise computer storage media and communication media. Computerstorage media include volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules and the like. Computer storage media are tangible andmutually exclusive to communication media. Computer storage media areimplemented in hardware and exclude carrier waves and propagatedsignals. Computer storage media for purposes of this disclosure are notsignals per se. Exemplary computer storage media include hard disks,flash drives, and other solid-state memory. In contrast, communicationmedia typically embody computer-readable instructions, data structures,program modules, or the like, in a modulated data signal such as acarrier wave or other transport mechanism and include any informationdelivery media.

Although described in connection with an exemplary computing systemenvironment, examples of the disclosure are capable of implementationwith numerous other general purpose or special purpose computing systemenvironments, configurations, or devices.

Examples of well-known computing systems, environments, and/orconfigurations that can be suitable for use with aspects of thedisclosure include, but are not limited to, mobile computing devices,personal computers, server computers, hand-held or laptop devices,multiprocessor systems, gaming consoles, microprocessor-based systems,set top boxes, programmable consumer electronics, mobile telephones,mobile computing and/or communication devices in wearable or accessoryform factors (e.g., watches, glasses, headsets, or earphones), networkPCs, minicomputers, mainframe computers, distributed computingenvironments that include any of the above systems or devices, and thelike. Such systems or devices can accept input from the user in any way,including from input devices such as a keyboard or pointing device, viagesture input, proximity input (such as by hovering), and/or via voiceinput.

Examples of the disclosure can be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices in software, firmware, hardware,or a combination thereof. The computer-executable instructions can beorganized into one or more computer-executable components or modules.Generally, program modules include, but are not limited to, routines,programs, objects, components, and data structures that perform tasks orimplement abstract data types. Aspects of the disclosure can beimplemented with any number and organization of such components ormodules. For example, aspects of the disclosure are not limited to thespecific computer-executable instructions or the specific components ormodules illustrated in the figures and described herein. Other examplesof the disclosure can include different computer-executable instructionsor components having more functionality or less functionality thanillustrated and described herein.

In examples involving a general-purpose computer, aspects of thedisclosure transform the general-purpose computer into a special-purposecomputing device when configured to execute the instructions describedherein.

The examples illustrated and described herein as well as examples notspecifically described herein but within the scope of aspects of thedisclosure constitute exemplary means for metric definition andvisualization. For example, the elements illustrated in FIG. 1, FIG. 2,FIG. 3, FIG. 4 and FIG. 5, such as when encoded to perform theoperations illustrated in FIG. 6, FIG. 7, FIG. 8, FIG. 9, FIG. 10, FIG.11 and FIG. 12, constitute exemplary means for extracting a set of datastructures associated with a set of data sources; exemplary means foranalyzing the extracted set of data structures and a set of predefinedperformance metrics; exemplary means for defining a set of KPIs based onthe analysis of the extracted data; and exemplary means for generatingat last one visualization representing data associated with the at leastone KPI in the set of KPIs for display to a user via an output device.

Other non-limiting examples provide one or more computer storage deviceshaving a first computer-executable instructions stored thereon forproviding automatic definition and visualization of business performancemetrics. When executed by a computer, the computer performs operationsincluding uploading a dynamic set of data sources including at least oneof a list of tables, dimensions, or fact tables, wherein the dynamic setof data sources are uploaded to a database for analysis during creationof the set of KPIs; extracting a set of data structures associated withthe uploaded set of data sources; analyzing the extracted set of datastructures and a set of predefined performance metrics; defining a setof KPIs based on the analysis of the extracted data; and exporting theset of KPIs and data associated with the set of KPIs to at least onedestination database.

The order of execution or performance of the operations in examples ofthe disclosure illustrated and described herein is not essential, unlessotherwise specified. That is, the operations can be performed in anyorder, unless otherwise specified, and examples of the disclosure caninclude additional or fewer operations than those disclosed herein. Forexample, it is contemplated that executing or performing an operationbefore, contemporaneously with, or after another operation is within thescope of aspects of the disclosure.

When introducing elements of aspects of the disclosure or the examplesthereof, the articles “a,” “an,” “the,” and “said” are intended to meanthat there are one or more of the elements. The terms “comprising,”“including,” and “having” are intended to be inclusive and mean thatthere can be additional elements other than the listed elements. Theterm “exemplary” is intended to mean “an example of” The phrase “one ormore of the following: A, B, and C” means “at least one of A and/or atleast one of B and/or at least one of C.”

Having described aspects of the disclosure in detail, it will beapparent that modifications and variations are possible withoutdeparting from the scope of aspects of the disclosure as defined in theappended claims. As various changes could be made in the aboveconstructions, products, and methods without departing from the scope ofaspects of the disclosure, it is intended that all matter contained inthe above description and shown in the accompanying drawings shall beinterpreted as illustrative and not in a limiting sense.

What is claimed is:
 1. A system for defining and visualizing keyperformance metrics, the system comprising: a memory; at least oneprocessor communicatively coupled to the memory; a set of data sourcesassociated with at least one data storage device; a user interfacedevice for receiving database credentials associated with connecting tothe set of data sources; an onboarding component, implemented on the atleast one processor, connecting to the set of data sources usingconnection data via a network, the connection data comprising thedatabase credentials; an extraction component, implemented on the atleast one processor, extracts data and corresponding data structure ofdata assets associated with the set of data sources and a set ofpredefined business performance metrics; a key performance indicator(KPI) creation component, implemented on the at least one processor,automatically defines at least one KPI based on analysis of theextracted data and a set of user-provided attribute operators for KPIcreation; an export component, implemented on the at least oneprocessor, exports at least one KPI to a destination data source; avisualization component, implemented on the at least one processor,creates a set of visualizations representing data associated with the atleast one KPI; and an output device outputs at least one visualizationin the set of visualizations to at least one user, wherein the at leastone visualization provides a graphical representation of a quantifiablemeasurement gauging performance based on the at least one KPI.
 2. Thesystem of claim 1, further comprising: a set of tables within a databaseassociated with at least one data source in the set of data sources,wherein the onboarding component imports the set of tables via thedatabase credentials.
 3. The system of claim 1, further comprising: ananalysis component, implemented on the at least one processor, performssemantic analysis on table metadata associated with a set of data tablesavailable via the set of data sources, wherein the table metadataidentifies at least one of table name, index keys or columns; and theanalysis component automatically identifies facts and dimensions withinat least one data structure extracted from at least one data source inthe set of data sources.
 4. The system of claim 1, further comprising:an upload component, implemented on the at least one processor, uploadsdata structure during onboarding .
 5. The system of claim 1, furthercomprising: a graphical user interface implemented on the at least oneprocessor that provides a drag-and-drop option enabling a user todrag-and-drop entities and attributes required for visualizing aselected KPI.
 6. The system of claim 1, further comprising: a graphicaluser interface implemented on the at least one processor that providesan interface to visualize multiple formulas for creating a selected KPI.7. The system of claim 1, further comprising: a metric definitioncomponent automatically identifies rollup columns associated with atleast one data table required for at least one structured query language(SQL) query associated with identifying the at least one KPI.
 8. Thesystem of claim 1, further comprising: the set of data sources includingat least one list of tables, dimensions or fact tables, wherein the setof data sources are uploaded to a database for analysis during creationof a set of KPIs.
 9. The system of claim 1, further comprising: a portalpage, implemented on the user interface device, wherein the portal pageprovides a set of GUI options for self-service creation of KPIs.
 10. Acomputer-implemented method for defining and visualizing key performancemetrics, the method comprising: extracting, by an extraction component,a set of data structures associated with a set of data sources;analyzing, by an analysis component, an extracted set of data structuresand a set of predefined performance metrics; defining, by a metricdefinition component, a set of KPIs based on the analysis of theextracted set of data structures; and generating, by a visualizationcomponent, at last one visualization representing data associated withat least one KPI in the set of KPIs for display to a user via an outputdevice.
 11. The computer-implemented method of claim 10, furthercomprising: connecting, by an onboarding component, to the set of datasources using connection data provided by the user via a user interfacedevice, the set of data sources comprising a cloud storage, wherein aconnection with the cloud storage is accomplished via a network; andimporting, by an onboarding component, a set of tables within a databaseassociated with at least one data source in the set of data sources,wherein the onboarding component imports the set of tables via databasecredentials.
 12. The computer-implemented method of claim 10, furthercomprising: onboarding related entities; classifying entities as fact ordimension; updating classification with updates on conditionuser-provided updates are provided by the user; and persistinginformation from the updated classification into a set of relationshipgraphs.
 13. The computer-implemented method of claim 10, furthercomprising: searching for related entities and attributes using a set ofuser-provided key words; identifying entities related to the set ofuser-provided key words from a relationship graph; and adding theentities and attributes to a result set.
 14. The computer-implementedmethod of claim 10, further comprising: identifying a set of entitiesassociated with a set of user-provided attributes; obtaining a set ofentity pairs from an entities list; creating a join clause using a setof primary keys for each pair from the entities list; and crating aquery using input provided by at least one user and the join clause. 15.The computer-implemented method of claim 10, further comprising:automatically identifying at least one rollup column associated with atleast one data table required for at least one structured query language(SQL) query associated with identifying the at least one KPI.
 16. Thecomputer-implemented method of claim 10, further comprising: uploadingthe set of data sources including at least one of a list of tables,dimensions, or fact tables, wherein the set of data sources are uploadedto a database for analysis during creation of the set of KPIs.
 17. Oneor more computer storage devices, having computer-executableinstructions for defining and visualizing key performance metrics by ametric definition component, that, when executed by a computer cause thecomputer to perform operations comprising: uploading a dynamic set ofdata sources including at least one of a list of tables, dimensions, orfact tables, wherein the dynamic set of data sources are uploaded to adatabase for analysis during creation of a set of KPIs; extracting a setof data structures associated with the dynamic set of data sources;analyzing an extracted set of data structures and a set of predefinedperformance metrics; defining the set of KPIs based on the analysis ofdata associated with the extracted set of data structures; and exportingthe set of KPIs and data associated with the set of KPIs to at least onedestination database.
 18. The one or more computer storage devices ofclaim 17, wherein the metric definition component, when further executedby a computer, cause the computer to perform operations comprising:creating a set of visualizations representing data associated with atleast one KPI, wherein the set of visualizations provide a graphicalrepresentation of a quantifiable measurement gauging performance basedon the at least one KPI in the set of KPIs.
 19. The one or more computerstorage devices of claim 17, wherein the metric definition component,when further executed by a computer, cause the computer to performoperations comprising: connecting to at least one data source via anetwork using connection data provided by a user via a user interfacedevice, the dynamic set of data sources comprising a cloud storage,wherein a connection with the cloud storage is accomplished via anetwork; and providing a KPI creation and visualization portal page viaa GUI associated with an output device, wherein the portal page providesa set of GUI options for self-service creation of KPIs and self-servicevisualization of KPIs.
 20. The one or more computer storage devices ofclaim 17, wherein the metric definition component, when further executedby a computer, cause the computer to perform operations comprising:executing a set of algorithms to generate a KPI, wherein the set ofalgorithms further comprises an entity classification algorithm, anentity search algorithm and an entity relational mapping algorithms.